home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / dev / misc / htcobpp.lha / utils / pi.cbl < prev    next >
Text File  |  1999-09-21  |  2KB  |  84 lines

  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. PI-CALC.
  3.        AUTHOR. PF/TR.
  4.       *
  5.        ENVIRONMENT DIVISION.
  6.        CONFIGURATION SECTION.
  7.        OBJECT-COMPUTER. MDS-800.
  8.        SPECIAL-NAMES. CONSOLE IS CRT.
  9.       *
  10.        DATA DIVISION.
  11.        WORKING-STORAGE SECTION.
  12.       *
  13.        01  SCREEN PIC X(1920).
  14.       *
  15.        01  DI-1 REDEFINES SCREEN.
  16.            02 FILLER PIC X(160).
  17.            02 DI-TX1 PIC X(160).
  18.            02 DI-TX2 PIC X(13).
  19.            02 DI-TERM PIC X(15).
  20.            02 FILLER PIC X(136).
  21.            02 DI-TX3 PIC X(6).
  22.            02 DI-PI PIC X(15).
  23.            02 FILLER PIC X(1415).
  24.       *
  25.        01  DI-2 REDEFINES SCREEN.
  26.            02 FILLER PIC X(333).
  27.            02 DI-TERM2 PIC X(15).
  28.            02 FILLER PIC X(142).
  29.            02 DI-PI2 PIC X(15).
  30.            02 FILLER PIC X(1415).
  31.       *
  32.        01  WORK-AREA.
  33.            02 PI PIC S9V9(14).
  34.            02 TERM PIC S9V9(14).
  35.            02 W PIC S9V9(14).
  36.            02 N PIC 9999.
  37.            02 N1 PIC 9999.
  38.            02 N2 PIC 9999.
  39.            02 ED PIC -9.9(12).
  40.       *
  41.        01  CONSTANTS.
  42.            02 TX1 PIC X(17) VALUE "CALCULATION OF PI".
  43.            02 TX2 PIC X(12) VALUE "NEXT TERM IS".
  44.            02 TX3 PIC X(5) VALUE "PI IS".
  45.       *
  46.        PROCEDURE DIVISION.
  47.        LA-START.
  48.            DISPLAY SPACE.
  49.            MOVE SPACE TO SCREEN.
  50.            MOVE TX1 TO DI-TX1.
  51.            MOVE TX2 TO DI-TX2.
  52.            MOVE TX3 TO DI-TX3.
  53.            MOVE 0.5 TO ED.
  54.            MOVE ED TO DI-TERM.
  55.            MOVE 3 TO ED.
  56.            MOVE ED TO DI-PI.
  57.            DISPLAY DI-1.
  58.            MOVE 0.5 TO PI.
  59.            MOVE 0.5 TO TERM.
  60.            MOVE 3 TO N.
  61.        LOOP.
  62.            MOVE N TO N2.
  63.            SUBTRACT 2 FROM N2.
  64.            MULTIPLY N2 BY N2.
  65.            MULTIPLY N2 BY TERM.
  66.            MOVE N TO N1.
  67.            SUBTRACT 1 FROM N1.
  68.            MULTIPLY N BY N1.
  69.            MULTIPLY 4 BY N1.
  70.            DIVIDE N1 INTO TERM.
  71.            IF TERM < 0.0000000000001 THEN GO TO HALT.
  72.            ADD TERM TO PI.
  73.            MOVE PI TO W.
  74.            MULTIPLY 6 BY W.
  75.            MOVE W TO ED.
  76.            MOVE ED TO DI-PI2.
  77.            MOVE TERM TO ED.
  78.            MOVE ED TO DI-TERM2.
  79.            DISPLAY DI-2.
  80.            ADD 2 TO N.
  81.            IF N < 100 GO TO LOOP.
  82.        HALT.
  83.            STOP RUN.
  84.